Micron Document
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| SparkN0de-git | SparkN0de |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Node / ReticulumProjects / MeshChatX.git / files / scripts / ci / github-install-deps.sh

Displaying Raw • Download


scripts/ci/github-install-deps.sh legacy/win7 (159b2358) Text, 3.93 KB

T8b949e#!/usr/bin/env bash
T8b949e# Install Python (UV) and Node (pnpm) dependencies for native Electron builds.
Tffa657set -euo pipefail

Te6edf3ROOTTff7b72=Ta5d6ff"Tff7b72$(Tffa657cd Ta5d6ff"Tff7b72$(dirname Ta5d6ff"Te6edf3$0Ta5d6ff"Tff7b72)Ta5d6ff/../..Ta5d6ff" Tff7b72&& Tffa657pwdTff7b72)Ta5d6ff"
Tffa657cd Ta5d6ff"Te6edf3$ROOTTa5d6ff"

T8b949e# shellcheck source=scripts/ci/priv.sh
. Ta5d6ff"Tff7b72$(dirname Ta5d6ff"Te6edf3$0Ta5d6ff"Tff7b72)Ta5d6ff/priv.shTa5d6ff"

Tffa657export Te6edf3GIT_TERMINAL_PROMPTTff7b72=T79c0ff0

Tff7b72if Tff7b72[Tff7b72[ Ta5d6ff"Tff7b72$(uname -sTff7b72)Ta5d6ff" Tff7b72=Tff7b72= Ta5d6ff"Darwin" Tff7b72]Tff7b72]Tb4b4b4; Tff7b72then
brew install codec2
Te6edf3_codec2_prefixTff7b72=Ta5d6ff"Tff7b72$(brew --prefix codec2Tff7b72)Ta5d6ff"
Tffa657export Te6edf3CPPFLAGSTff7b72=Ta5d6ff"Tffd700${Te6edf3CPPFLAGSTff7b72:-Tffd700}Ta5d6ff -ITffd700${Te6edf3_codec2_prefixTffd700}Ta5d6ff/includeTa5d6ff"
Tffa657export Te6edf3LDFLAGSTff7b72=Ta5d6ff"Tffd700${Te6edf3LDFLAGSTff7b72:-Tffd700}Ta5d6ff -LTffd700${Te6edf3_codec2_prefixTffd700}Ta5d6ff/libTa5d6ff"
Tff7b72if Tff7b72[Tff7b72[ -d Ta5d6ff"Tffd700${Te6edf3_codec2_prefixTffd700}Ta5d6ff/lib/pkgconfigTa5d6ff" Tff7b72]Tff7b72]Tb4b4b4; Tff7b72then
Tffa657export Te6edf3PKG_CONFIG_PATHTff7b72=Ta5d6ff"Tffd700${Te6edf3_codec2_prefixTffd700}Ta5d6ff/lib/pkgconfig:Tffd700${Te6edf3PKG_CONFIG_PATHTff7b72:-Tffd700}Ta5d6ff"
Tff7b72fi
Tff7b72fi

T8b949e# LXST/pyogg loads libopus (and libogg for Ogg muxing) at runtime. GitHub-hosted
T8b949e# Linux runners do not ship these by default, so backend Opus encode tests fail
T8b949e# with PyOggError until the shared libraries are present.
Tff7b72if Tff7b72[Tff7b72[ Ta5d6ff"Tff7b72$(uname -sTff7b72)Ta5d6ff" Tff7b72=Tff7b72= Ta5d6ff"Linux" Tff7b72]Tff7b72] Tff7b72&& Tffa657command -v apt-get >/dev/null T79c0ff2>Tb4b4b4&T79c0ff1Tb4b4b4; Tff7b72then
run_priv apt-get update -y
run_priv apt-get install -y libopus0 libogg0
Tff7b72fi

uv lock --check
uv sync --group dev
uv run python scripts/patch_lxst_pyogg_ogg_ctypes.py

Tff7b72if Tff7b72[Tff7b72[ Ta5d6ff"Tff7b72$(uname -sTff7b72)Ta5d6ff" Tff7b72=Tff7b72= Ta5d6ff"Darwin" Tff7b72]Tff7b72]Tb4b4b4; Tff7b72then
Tff7b72if uv run python -c Ta5d6ff"import platform, sys; sys.exit(0 if platform.machine() == 'arm64' else 1)"Tb4b4b4; Tff7b72then
Te6edf3_miniaudio_stateTff7b72=Ta5d6ff"Tff7b72$(uv run python -c Ta5d6ff"
import importlib.util
import pathlib
import subprocess
import sys

spec = importlib.util.find_spec('miniaudio')
if not spec or not spec.origin:
print('missing')
sys.exit(0)
so = pathlib.Path(spec.origin).resolve().parent / '_miniaudio.abi3.so'
if not so.is_file():
print('missing')
sys.exit(0)
out = subprocess.check_output(['file', str(so)], text=True)
has_arm = 'arm64' in out
has_x86 = 'x86_64' in out
if not has_arm and has_x86:
print('x86only')
elif has_arm and has_x86:
print('universal')
elif has_arm and not has_x86:
print('arm64only')
else:
print('unknown')
" T79c0ff2>/dev/null Tff7b72|| Tffa657echo Ta5d6ff"missing"Tff7b72)Ta5d6ff"
Tff7b72case Ta5d6ff"Te6edf3$_miniaudio_stateTa5d6ff" Tff7b72in
x86onlyTff7b72)
Tffa657echo Ta5d6ff"miniaudio _miniaudio.abi3.so is x86_64-only on arm64 venv; rebuilding from source." >Tb4b4b4&T79c0ff2
Te6edf3_need_rebuildTff7b72=T79c0ff1
Tb4b4b4;Tb4b4b4;
universalTff7b72)
Tffa657echo Ta5d6ff"miniaudio _miniaudio.abi3.so is universal2; rebuilding as arm64-only so @electron/universal can lipo with the x64 slice." >Tb4b4b4&T79c0ff2
Te6edf3_need_rebuildTff7b72=T79c0ff1
Tb4b4b4;Tb4b4b4;
*Tff7b72)
Te6edf3_need_rebuildTff7b72=T79c0ff0
Tb4b4b4;Tb4b4b4;
Tff7b72esac
Tff7b72if Tff7b72[Tff7b72[ Ta5d6ff"Tffd700${Te6edf3_need_rebuildTff7b72:-Te6edf30Tffd700}Ta5d6ff" Tff7b72=Tff7b72= Ta5d6ff"1" Tff7b72]Tff7b72]Tb4b4b4; Tff7b72then
Tff7b72(
Tffa657export Te6edf3ARCHFLAGSTff7b72=Ta5d6ff"-arch arm64"
Tffa657export Te6edf3CFLAGSTff7b72=Ta5d6ff"-arch arm64"
Tffa657export Te6edf3CXXFLAGSTff7b72=Ta5d6ff"-arch arm64"
uv run python -m pip install --force-reinstall --no-cache-dir --no-binary miniaudio Ta5d6ff"miniaudio>=1.70,<2"
Tff7b72)
Tff7b72fi
Tff7b72if ! uv run python -c Ta5d6ff"
import importlib.util
import pathlib
import subprocess
import sys

spec = importlib.util.find_spec('miniaudio')
if not spec or not spec.origin:
sys.exit(0)
so = pathlib.Path(spec.origin).resolve().parent / '_miniaudio.abi3.so'
if not so.is_file():
sys.exit(0)
out = subprocess.check_output(['file', str(so)], text=True)
if 'arm64' not in out:
sys.stderr.write(out)
sys.exit(1)
sys.exit(0)
"Tb4b4b4; Tff7b72then
Tff7b72if Tff7b72[Tff7b72[ Ta5d6ff"Tffd700${Te6edf3MESHCHATX_MAC_UNIVERSAL_STRIP_AUDIOTff7b72:-Te6edf30Tffd700}Ta5d6ff" Tff7b72=Tff7b72= Ta5d6ff"1" Tff7b72]Tff7b72]Tb4b4b4; Tff7b72then
Tffa657echo Ta5d6ff"miniaudio native extension is not arm64-capable, but MESHCHATX_MAC_UNIVERSAL_STRIP_AUDIO=1 is set; continuing (the build will drop _miniaudio.abi3.so before lipo)." >Tb4b4b4&T79c0ff2
Tff7b72else
Tffa657echo Ta5d6ff"miniaudio native extension is not arm64-capable; universal macOS builds will fail at lipo." >Tb4b4b4&T79c0ff2
Tffa657echo Ta5d6ff"Re-run with MESHCHATX_MAC_UNIVERSAL_STRIP_AUDIO=1 to drop optional audio decoding for the DMG." >Tb4b4b4&T79c0ff2
Tffa657exit T79c0ff1
Tff7b72fi
Tff7b72fi
Tff7b72fi
Tff7b72fi

pnpm config Tffa657set verify-store-integrity Tffa657true
pnpm install --frozen-lockfile


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────